package service;

import models.Loan;
import models.Pay;
import processor.LoanProcessor;
import service.exception.LoanException;
import service.exception.PayException;

public interface LoanService {
    public Loan getDbloan();

    public LoanProcessor getProcessor();

    public boolean hasBeenIssued();

    public boolean isValidLoanStateForProcess();

    public double getAmountToBeFullyPaid();

    public double getMonthlyPayment();

    public Loan.Status getLoanStatusAfterPayment() throws LoanException, PayException;
    
    public Pay getNextPay(Pay existPay);

}
